package com.mysoft.gfyx.clue.service;


import com.mysoft.framework.modeling.dto.FieldsSetting;
import com.mysoft.framework.modeling.dto.ListDataResult;
import com.mysoft.framework.modeling.dto.LoadDataParams;
import com.mysoft.gfyx.clue.controller.dto.DeleteByIdRequestDto;
import com.mysoft.gfyx.clue.dao.entity.CustomerPool;
import com.mysoft.gfyx.clue.service.dto.CustomerPoolDto;
import org.springframework.stereotype.Service;

import java.util.*;

/**
 * 描述：CustomerPool 接口层
 *
 * @author JavaSdk generator
 * @date 2022-11-15
 */
@Service
public interface CustomerPoolService {
    int ASSIGN_STATUS_NEVER = 0;//分配状态：未分配
    int ASSIGN_STATUS_HAS = 1;//分配状态：已分配

    FieldsSetting loadCustomerPoolFields();

    ListDataResult loadCustomerPoolData(LoadDataParams options);

    /**
     * 通过主键查询数据
     *
     * @param id 主键
     * @return 数据
     */
    CustomerPoolDto selectById(String id);

    /**
     * 获取一个客户
     *
     * @param conditions
     * @return
     */
    CustomerPoolDto getCustomerPool(Map<String, Object> conditions);

    CustomerPool addCustomerPool(CustomerPoolDto customerPoolDto);

    UUID editCustomerPool(CustomerPoolDto customerPoolDto);

    boolean addCustomerPools(Collection<CustomerPoolDto> customerPoolsDto);

    List<CustomerPoolDto> addCustomerPoolsByName(List<CustomerPoolDto> customerPoolsDto);

    CustomerPoolDto getCustomerPoolWithUnique(String CreditCode);

    Set<String> isAdded(List<String> creditCodes);

    void scheduleUpdatingCloudData();

    void updateMainDeveloperData();

    void setCooperationStatusByCreditCode(String creditCode);

    void deleteCustomerPool(DeleteByIdRequestDto dto);
}

